iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0

1️⃣ LlamaIndex 是什麼?

原名 GPT Index是一個專門為 LLM 提供資料接入與檢索能力的框架,它讓大型語言模型可以讀取外部資料(PDF、資料庫、網站),並建立可查詢的索引(Index),讓 AI 能更精確地回答問題

主要功能

  1. 資料讀取(Data Loaders)
    • 支援 TXT、PDF、Word、Notion、Google Drive、SQL 資料庫等
  2. 索引建立(Index)
    • 將資料切分成 Chunk 並向量化(Embedding)
  3. 檢索查詢(Retriever + Query Engine)
    • 提供相似度搜尋與自然語言問答
  4. 與 LLM 整合
    • 可搭配 OpenAI API、Ollama、Claude、LangChain 等
  5. 多種索引類型
    • Vector Store Index、Tree Index、List Index…

2️⃣ LlamaIndex 中文架構圖(文字版)

[ 資料來源:PDF / DB / Web ]
         ↓  (Data Loader)
[ 資料分塊 & 向量化 Embedding ]
         ↓  (Index 建立)
[ 向量索引庫 Vector Store ]
         ↓  (Retriever 檢索)
[ LLM 查詢引擎 Query Engine ]
         ↓
[ AI 回答問題 ]

3️⃣ 安裝 LlamaIndex

pip install llama-index
# 如果要用 Ollama
pip install llama-index-llms-ollama

4️⃣ 基本範例(讀取文件 + 問答)

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.ollama import Ollama

# 1. 載入文件資料
documents = SimpleDirectoryReader("data").load_data()

# 2. 初始化本地 LLM(Ollama)
llm = Ollama(model="llama3")

# 3. 建立索引
index = VectorStoreIndex.from_documents(documents, llm=llm)

# 4. 建立查詢引擎
query_engine = index.as_query_engine()

# 5. 問問題
response = query_engine.query("請用中文總結文件內容")
print(response)

data 資料夾中可放多個 .txt 或 .pdf 文件,LlamaIndex 會自動讀取並建立索引。

5️⃣ 與 LangChain 搭配

LlamaIndex 可以作為 LangChain 的檢索器(Retriever),負責資料讀取與檢索,LangChain 負責流程控制與多 Agent 協作

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI

# LlamaIndex 建索引
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
retriever = index.as_retriever()

# LangChain QA Chain
llm = ChatOpenAI(model="gpt-4o-mini")
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)

result = qa_chain.run("文件中提到的三個重點是什麼?")
print(result)

6️⃣ 適用場景

  • 文件問答系統(RAG)
  • 企業內部知識庫
  • 學術論文查詢
  • 結合多資料源的 AI 助手

7️⃣ 結論

  • LlamaIndex 專注在 資料 → 索引 → 檢索 → AI 回答 這條路徑
  • 適合做 RAG(檢索增強生成) 系統
  • 可與 Ollama、LangChain、OpenAI API 無縫整合
  • 讓 AI 能「看懂」你的私有資料,而不是只靠訓練知識

上一篇
Day20-Open Webui
下一篇
Day22-Code LLM
系列文
AI咒術迴戰~LLM絕對領域展開25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言